/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.invest.model;

import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author ceatis
 */
@Entity
@Table(name = "CATEGORIAS")
public class Categoria implements Serializable, Comparable<Categoria> {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "COD_CATEGORIA")
    private Integer codCategoria;
    @Column(name = "NOME", nullable = false, length = 6)
    private String nome;
    @Column(name = "TIPO", nullable = false, length = 30)
    private String tipo;
    @OneToMany
    @JoinColumn(name = "COD_EMPRESA")
    private Collection<Empresa> empresas;

    public Categoria() {
    }

    public Integer getCodCategoria() {
        return codCategoria;
    }

    public void setCodCategoria(Integer codCategoria) {
        this.codCategoria = codCategoria;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public int compareTo(Categoria c) {
        return this.codCategoria.compareTo(c.codCategoria);
    }

    public Collection<Empresa> getEmpresas() {
        return empresas;
    }

    public void setEmpresas(Collection<Empresa> empresas) {
        this.empresas = empresas;
    }
    
    public void addEmpresa(Empresa e){
        e.setCategoria(this);
        empresas.add(e);
    }
    
    public void removeEmpresa(Empresa e){
        empresas.remove(e);
    }
}
